perm filename TRIGS.DIF[10X,AIL] blob
sn#152621 filedate 1975-03-31 generic text, type T, neo UTF8
1) TRIGS.OLD[S,AIL] vs. 2) TRIGS[S,AIL] SRCCOM 03-31-75 03:31 PAGES 1,1
******** TRIGS.OLD[S,AIL] **** PAGE 1 LINE 1
1) COMMENT ⊗ VALID 00014 PAGES VERSION 17-1(3)
1) RECORD PAGE DESCRIPTION
*** TRIGS[S,AIL] *** PAGE 1 LINE 1
2) COMMENT ⊗ VALID 00015 PAGES VERSION 17-1(6)
2) RECORD PAGE DESCRIPTION
******** TRIGS.OLD[S,AIL] **** PAGE 1 LINE 7
1) 00011 00005 FLOATING POINT SINGLE PRECISION SINE AND COSINE FUNCTION
1) 00017 00006 FLOATING POINT SINGLE PRECISION SQUARE ROOT FUNCTION
1) 00021 00007 PSEUDO RANDOM NUMBER GENERATOR AND INITIALIZING ROUTINE
1) 00024 00008 FLOATING POINT SINGLE PRECISION ARCTANGENT FUNCTION
1) 00029 00009 FLOATING POINT SINGLE PRECISION ARCSINE FUNCTION
1) 00032 00010 FLOATING POINT SINGLE PRECISION ARCCOSINE FUNCTION
1) 00035 00011 FLOATING POINT SINGLE PRECISION ARCTANGENT OF TWO ARGUMENTS
1) 00039 00012 FLOATING POINT SINGLE PRECISION HYPERBOLIC TANGENT ROUTINE
1) 00043 00013 FLOATING POINT SINGLE PRECISION HYPERBOLIC COSINE FUNCTION.
1) 00046 00014 FLOATING POINT SINGLE PRECISION HYPERBOLIC SINE FUNCTION.
1) 00050 ENDMK
1) ⊗;
*** TRIGS[S,AIL] *** PAGE 1 LINE 7
2) 00011 00005 TENX<TENEX VERSION OF UNDER/OVER FLOW
2) 00016 00006 FLOATING POINT SINGLE PRECISION SINE AND COSINE FUNCTION
2) 00022 00007 FLOATING POINT SINGLE PRECISION SQUARE ROOT FUNCTION
2) 00026 00008 PSEUDO RANDOM NUMBER GENERATOR AND INITIALIZING ROUTINE
2) 00029 00009 FLOATING POINT SINGLE PRECISION ARCTANGENT FUNCTION
2) 00034 00010 FLOATING POINT SINGLE PRECISION ARCSINE FUNCTION
2) 00037 00011 FLOATING POINT SINGLE PRECISION ARCCOSINE FUNCTION
2) 00040 00012 FLOATING POINT SINGLE PRECISION ARCTANGENT OF TWO ARGUMENTS
2) 00044 00013 FLOATING POINT SINGLE PRECISION HYPERBOLIC TANGENT ROUTINE
2) 00048 00014 FLOATING POINT SINGLE PRECISION HYPERBOLIC COSINE FUNCTION.
2) 00051 00015 FLOATING POINT SINGLE PRECISION HYPERBOLIC SINE FUNCTION.
2) 00055 ENDMK
2) ⊗;
******** TRIGS.OLD[S,AIL] **** PAGE 2 LINE 3
1) 021 102100000003 ⊗;
1) COMMENT ⊗
1) VERSION 17-1(3) 12-12-73 BY RHT & RFS BUG #PW# NEED SEVERAL APR BIT ENABLINGS
*** TRIGS[S,AIL] *** PAGE 2 LINE 3
2) 021 102100000006 ⊗;
2) COMMENT ⊗
2) VERSION 17-1(6) 3-31-75 BY RLS TENEX UNDER/OVER HANDLER
2) VERSION 17-1(5) 3-31-75
2) VERSION 17-1(4) 3-31-75
2) VERSION 17-1(3) 12-12-73 BY RHT & RFS BUG #PW# NEED SEVERAL APR BIT ENABLINGS
1) TRIGS.OLD[S,AIL] vs. 2) TRIGS[S,AIL] SRCCOM 03-31-75 03:31 PAGES 2,2
******** TRIGS.OLD[S,AIL] **** PAGE 4 LINE 8
1) OV←←400000
*** TRIGS[S,AIL] *** PAGE 4 LINE 9
2) NOTENX <;DEC VERSION OF UNDER/OVER FLOW CODE
2) OV←←400000
******** TRIGS.OLD[S,AIL] **** PAGE 4 LINE 153
1) BEND UNDER
*** TRIGS[S,AIL] *** PAGE 4 LINE 154
2) >;NOTENX
2) TENX<;TENEX VERSION OF UNDER/OVER FLOW
2) OV←←400000
2) FOV←←40000
2) ZDV←←40
2) FXU←←100
2) IFE ALWAYS,< ;MORE EXTERNALS, CONDITIONALLY ASSEMBLED.
2) EXTERNAL INTMAP,ENABLE
2) EXTERNAL GOGTAB,PS3ACS
2) >
2) ;The underflow processing is turned
2) ;on with the call TRIGINIT( <rout-name> ). This uses the
2) ;INTMAP and ENABLE SAIL functions to set up interrupt
2) ;traps (export); at Stanford, it turns on the APRENB system
2) ;itself.
2) ;If an interrupts happens, and it is
2) ;not followed by a JFCL (indicating that overflow from this
2) ;spot is ok), then the <rout-name> is called.
2) ;It may peer around at things, change JOBTPC, etc., just
2) ;as documented for any interrupt routine. When it returns,
2) ;the interrupt is dismissed.
2) ;IF THIS CODE IS LOADED, INITIALIZE IT!
2) TRGIN: 0
2) XWD 000000,TRGIQ ;SPECIAL INIT IN FIRST SYS PHASE
2) 0 ;ONLY 1 ROUTINE TO CALL.
2) LINK %INLNK,TRGIN
2) TRGIQ: PUSH P,[0] ;NO ROUTINE.
2) PUSHJ P,TRIGINI ;INITIALIZATION
2) POPJ P, ;RETURN.
2) HERE(TRIGINIT)
2) JFCL 17,.+1 ;CLEAR NUMERIC FLAGS.
2) PUSH P,[=7] ;ARM FOR FLOATING OVERFLOWS
2) PUSH P,[FLTOV] ;ROUTINE.
2) PUSH P,[0] ;NOT DEFERRED
2) PUSHJ P,INTMAP ;SET IT ALL UP.
2) PUSH P,[=7]
1) TRIGS.OLD[S,AIL] vs. 2) TRIGS[S,AIL] SRCCOM 03-31-75 03:31 PAGES 4,4
2) PUSHJ P,ENABLE ;AND ENABLE IT.
2) PUSH P,[=6] ;ARM FOR regular, too.
2) PUSH P,[NOFLT] ;ROUTINE.
2) PUSH P,[0] ;NOT DEFERRED
2) PUSHJ P,INTMAP ;SET IT ALL UP.
2) PUSH P,[=6]
2) PUSHJ P,ENABLE ;AND ENABLE IT.
2) POP P,1 ;RETURN ADDRESS
2) POP P,OVROUT ;USER'S ROUTINE.
2) JRST (1) ;RETURN.
2) GETADR:
2) ;GET PC WORD IN 1, STORE IN OVPCWD
2) MOVEI 1,400000 ;THIS FORK
2) JSYS RIR ;READ TABLES
2) HLRZ 2,2 ;LEVTAB ADDRESS
2) MOVE 1,@2(2) ;LEVEL 3 PC WORD
2) MOVEM 1,OVPCWD ;SAVE FOR LOOKING.
2) POPJ P,
2) NOFLT:
2) PUSHJ P,GETADR ;GET PC WORD
2) JRST NOFX ;NOT FLOATING
2) FLTOV:
2) PUSHJ P,GETADR ;GET ADDRESS OF INTERRUPTED CODE IN 1
2) MOVE 1,-1(1) ;GET OPCODE.
2) TLNN 1,40000 ;CHECK FOR FSC
2) TLZ 1,2000
2) DPB 1,[POINT 29,SEW,35] ;CHANGE INSTRUCTION
2) PUSH P,16 ;GET BACK INTERRUPT ACS
2) MOVEM P,SAVP
2) MOVE 17,[XWD PS3ACS,0]
2) BLT 17,17 ;RESTORE AC'S
2) SEW: SETZ 0,0 ;MODIFIED!!!!
2) MOVEM 17,PS3ACS+17
2) MOVEI 17,PS3ACS
2) BLT 17,PS3ACS+16
2) MOVE P,SAVP
2) POP P,16
2) NOFX: HLRZ 1,OVPCWD ;CHECK IF NEXT INSTR IS JFCL
2) ANDCMI 1,777
2) CAIE 1,(<JFCL>) ;CHECK.
2) JRST USRRT ;GO TO USER ROUTINE.
2) HRRZ 1,@OVPCWD ;GET EFFECTIVE ADDRESS
2) HRRM 1,OVPCWD
2) RET: MOVSI 1,OV+FOV+FXU+ZDV ;PROBABLY A NO-OP ON TENEX
2) ANDCAM 1,OVPCWD ;BUT PROBABLY DOESNT HURT
2) MOVEI 1,400000 ;THIS FORK
2) JSYS RIR ;READ LEVTAB,CHNTAB
2) HLRZ 2,2
1) TRIGS.OLD[S,AIL] vs. 2) TRIGS[S,AIL] SRCCOM 03-31-75 03:31 PAGES 4,4
2) MOVE 1,OVPCWD
2) MOVEM 1,@2(2) ;SAVE THE NEW PC WORD FOR LEVEL 3
2) POPJ P, ;RETURN TO INTERRUPT HANDLER.
2) USRRT: SKIPN OVROUT
2) JRST RET ;NO USER ROUTINE.
2) PUSHJ P,@OVROUT ;CALL USER'S ROUTINE.
2) POPJ P, ;JUST RETURN
2) SAVP: 0
2) OVROUT: 0
2) >;TENX -- END OF TENEX VERSION OF UNDER/OVER FLOW HANDLER
2) BEND UNDER